package ttOrder.service;

import java.util.List;

public abstract class abstractService<T> {
	
	/**
	 * 获取全部的记录
	 * @author emoker
	 * @param null
	 * */
	public abstract List<T> getAll();
	
	/**
	 * 根据传入的实体类中不为空的字段获取记录
	 * @author emoker
	 * @param 实体类
	 * */
	public abstract List<T> getByEntity(T record);
	
	/**
	 * 根据传入的实体类的主键查询
	 * @author emoker
	 * @param 实体类
	 * */
	public abstract T getByKey(T key);
	
	/**
	 * 根据传入的实体类进行插入操作
	 * @author emoker
	 * @param 实体类
	 * @see MyMapper#insert(T t)
	 * 
	 * */
	public abstract int insert (T record);
	
	/**
	 * 根据主键更新数据，为空的字段不进行更新
	 * @author emoker
	 * @param 实体类
	 * @see MyMapper#updateByPrimaryKeySelective(T t)
	 * 
	 * */
	public abstract int update (T record);
	
	/**
	 * 根据主键删除记录，只删除一条记录
	 * @author emoker
	 * @param 实体类
	 * @see MyMapper#deleteByPrimaryKey(Object key)
	 * 
	 * */
	public abstract int deleteByKey (T key);
	
	/**
	 * 根据传入的实体类中不为空的字段删除记录，字段间通过and连接
	 * @author emoker
	 * @param 实体类
	 * @see MyMapper#delete(T key)
	 * 
	 * */
	public abstract int deleteByEntity (T record);
	
	/**
	 * 根据传入的实体类中不为空的字段查询记录数量
	 * @author emoker
	 * @param 实体类
	 * */
	public abstract int getCount(T record);
}
